package com.legal.aid.app.domain.vo;

import com.legal.aid.common.annotation.Excel;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.io.Serializable;
import java.math.BigDecimal;

public class LawyerDetailAppVo implements Serializable {
    private static final long serialVersionUID = 1L;

    /**
     * 用户ID
     */
    private Long userId;

    /**
     * 用户名
     */
    @Excel(name = "用户名")
    private String userName;

    /**
     * 性别（0男 1女 2其他）
     */
    @Excel(name = "性别", readConverterExp = "0=男,1=女,2=其他")
    private String gender;


    /**
     * 头像URL
     */
    private String avatar;

    /**
     * 手机号
     */
    @Excel(name = "手机号")
    private String phoneNumber;

    /**
     * 联系地址
     */
    @Excel(name = "联系地址")
    private String contactAddress;

    /**
     * 律师ID，主键
     */
    private Long lawyerId;

    /**
     * 律师姓名
     */
    @Excel(name = "律师姓名")
    private String lawyerName;

    /**
     * 所属律所名称
     */
    @Excel(name = "所属律所名称")
    private String lawFirmName;

    /**
     * 职称/头衔
     */
    @Excel(name = "职称/头衔")
    private String title;

    /**
     * 律师简介
     */
    @Excel(name = "律师简介")
    private String introduction;

    /**
     * 在线状态(0离线1在线)
     */
    @Excel(name = "在线状态", readConverterExp = "0=离线,1=在线")
    private String onlineStatus;

    /**
     * 咨询价格
     */
    @Excel(name = "咨询价格")
    private BigDecimal consultationPrice;

    /**
     * 平均评分
     */
    @Excel(name = "平均评分")
    private BigDecimal averageRating;

    /**
     * 律师执业证号
     */
    @Excel(name = "律师执业证号")
    private String licenseNo;

    /**
     * 执业年限
     */
    @Excel(name = "执业年限")
    private Integer practiceYears;

    /**
     * 专业领域（逗号分隔，使用数据字典）
     */
    @Excel(name = "专业领域", readConverterExp = "逗=号分隔，使用数据字典")
    private String expertise;




    public void setUserId(Long userId) {
        this.userId = userId;
    }

    public Long getUserId() {
        return userId;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public String getUserName() {
        return userName;
    }

    public void setGender(String gender) {
        this.gender = gender;
    }

    public String getGender() {
        return gender;
    }

    public void setAvatar(String avatar) {
        this.avatar = avatar;
    }

    public String getAvatar() {
        return avatar;
    }

    public void setPhoneNumber(String phoneNumber) {
        this.phoneNumber = phoneNumber;
    }

    public String getPhoneNumber() {
        return phoneNumber;
    }

    public void setContactAddress(String contactAddress) {
        this.contactAddress = contactAddress;
    }

    public String getContactAddress() {
        return contactAddress;
    }

    public void setLawyerId(Long lawyerId) {
        this.lawyerId = lawyerId;
    }

    public Long getLawyerId() {
        return lawyerId;
    }

    public void setLawyerName(String lawyerName) {
        this.lawyerName = lawyerName;
    }

    public String getLawyerName() {
        return lawyerName;
    }

    public void setLawFirmName(String lawFirmName) {
        this.lawFirmName = lawFirmName;
    }

    public String getLawFirmName() {
        return lawFirmName;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public String getTitle() {
        return title;
    }

    public void setIntroduction(String introduction) {
        this.introduction = introduction;
    }

    public String getIntroduction() {
        return introduction;
    }

    public void setOnlineStatus(String onlineStatus) {
        this.onlineStatus = onlineStatus;
    }

    public String getOnlineStatus() {
        return onlineStatus;
    }

    public void setConsultationPrice(BigDecimal consultationPrice) {
        this.consultationPrice = consultationPrice;
    }

    public BigDecimal getConsultationPrice() {
        return consultationPrice;
    }

    public void setAverageRating(BigDecimal averageRating) {
        this.averageRating = averageRating;
    }

    public BigDecimal getAverageRating() {
        return averageRating;
    }

    public void setLicenseNo(String licenseNo) {
        this.licenseNo = licenseNo;
    }

    public String getLicenseNo() {
        return licenseNo;
    }

    public void setPracticeYears(Integer practiceYears) {
        this.practiceYears = practiceYears;
    }

    public Integer getPracticeYears() {
        return practiceYears;
    }

    public void setExpertise(String expertise) {
        this.expertise = expertise;
    }

    public String getExpertise() {
        return expertise;
    }


    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("userId", getUserId())
                .append("userName", getUserName())
                .append("gender", getGender())
                .append("avatar", getAvatar())
                .append("phoneNumber", getPhoneNumber())
                .append("contactAddress", getContactAddress())
                .append("lawyerId", getLawyerId())
                .append("lawyerName", getLawyerName())
                .append("lawFirmName", getLawFirmName())
                .append("title", getTitle())
                .append("introduction", getIntroduction())
                .append("onlineStatus", getOnlineStatus())
                .append("consultationPrice", getConsultationPrice())
                .append("averageRating", getAverageRating())
                .append("licenseNo", getLicenseNo())
                .append("practiceYears", getPracticeYears())
                .append("expertise", getExpertise())
                .toString();
    }

}
